// // es5 单例模式
// function People() {
//     //判断 构造函数时候已经被实例
//     if (People.unique !== undefined) {
//         return People.unique
//     }
//     this.name = 'ldq'
//     this.age = '18'
//     People.unique = this // 保存静态属性 实例对象
// }
// var p1 = new People()
// var p2 = new People()
// // 单例 重点在于此 一个对象有且只有一次实例化
// // 如果返回多次实例化
// // 也只返回第一次实例化后的实例对象 
// // 判断的就是 内存地址 
// console.log(p1 === p2);

// es6
class Instance{
    constructor(name="ldq",age='18'){
        this.name = name
        this.age = age
    }
    static getInstance () {
        if(!this.instance){
            this.instance = new Instance()
        }
        return this.instance
    }
}
let obj1 = Instance.getInstance ()
let obj2 = Instance.getInstance()
console.log( obj1 === obj2);